home *** CD-ROM | disk | FTP | other *** search
/ Risc World 3 / Risc World 3.iso / SOFTWARE / ISSUE6 / PD / PDF / pdf / c++ / Bookmarks next >
Text File  |  2003-02-14  |  3KB  |  78 lines

  1. //--------------------------------------------------------------------------
  2. //
  3. //   Copyright (c) 2002, Colin Granville
  4. //
  5. //   All rights reserved.
  6. //
  7. //   Redistribution and use in source and binary forms, with or
  8. //   without modification, are permitted provided that the following 
  9. //   conditions are met:
  10. //
  11. //      * Redistributions of source code must retain the above copyright 
  12. //        notice, this list of conditions and the following disclaimer.
  13. //
  14. //      * Redistributions in binary form must reproduce the above 
  15. //        copyright notice, this list of conditions and the following 
  16. //        disclaimer in the documentation and/or other materials 
  17. //        provided with the distribution.
  18. //
  19. //      * The name Colin Granville may not be used to endorse or promote 
  20. //        products derived from this software without specific prior 
  21. //        written permission.
  22. //
  23. //   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
  24. //   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
  25. //   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
  26. //   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
  27. //   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
  28. //   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  29. //   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
  30. //   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
  31. //   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
  32. //   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
  33. //   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
  34. //   OF THE POSSIBILITY OF SUCH DAMAGE.
  35. //
  36. //--------------------------------------------------------------------------
  37.  
  38. #include "Bookmarks.h"
  39. #include "GuiGadget.h"
  40. #include "GuiTargets.h"
  41. #include "DocViewToolbar.h"
  42. #include "DocView.h"
  43. #include "Document.h"
  44. #include "UserEvents.h"
  45.  
  46. #define BASE_COMPONENT 0x80
  47.  
  48. Bookmarks::Bookmarks(DocView& v,DocViewToolbar& tb,GuiWindow& ancestor)
  49.  : view(v),
  50.    toolbar(tb),
  51.    selectTarget(&ancestor,User_BookmarkSelect,this,Bookmarks::select),
  52.    adjustTarget(&ancestor,User_BookmarkAdjust,this,Bookmarks::adjust)
  53. {
  54.   int i;
  55.   for (i=0;i<4;i++) page[i].page=0;
  56. }
  57.  
  58. //*************************************************************************
  59. Claim Bookmarks::select(GuiToolboxEvent&,const GuiIdBlock& id_block)
  60. {
  61.   unsigned int num=id_block.self.component-BASE_COMPONENT;
  62.   if (num<4 && page[num].page) view.setPage(page[num]);
  63.   return CLAIM;
  64. }
  65.  
  66. //*************************************************************************
  67.  
  68. Claim Bookmarks::adjust(GuiToolboxEvent&,const GuiIdBlock& id_block)
  69. {
  70.   unsigned int num=id_block.self.component-BASE_COMPONENT;
  71.   if (num>=4) return CLAIM;
  72.   int value=toolbar.getPage();
  73.   GuiToolAction(toolbar,id_block.self.component).set(value!=0);
  74.   page[num].page=value;
  75.   page[num].docName=view.getDocument().getFileName();
  76.   return CLAIM;
  77. }
  78.